1. Field of the Invention
The present invention generally relates to the field of computer-aided design (CAD) systems and the use of such systems for modeling parts, such as sheet metal parts. More particularly, the present invention relates to an apparatus and method for transferring part data, such as sheet metal part data, between computer-based application or CAD environments and for editing such part data.
2. Background Information
The production of parts, such as sheet metal parts, has traditionally included a design and modeling stage during which a sheet metal part design is developed based on a customer""s specifications. A customer will typically place an order for a particular sheet metal component to be produced at a sheet metal manufacturing or production facility. The customer""s order will usually include basic product and design information so that the component may be manufactured by the factory. This information may include, for example, the geometric dimensions of the part, the material required for the part (e.g., steel, stainless steel, aluminum, etc.), special forming information, the batch size, the delivery date, etc. The sheet metal part requested by the customer may be designed and produced for a wide variety of applications. For example, the produced component may ultimately be used as an outer casing for a computer, an electrical switchboard, an armrest in an airplane, or part of a door panel for a car.
During the design and modeling stage, a sheet metal part design may be developed by a design office of the manufacturing facility using a computer-aided design (CAD) system. Based on a customer""s specifications, a two-dimensional (2-D) model of the sheet metal part may be developed by a design programmer with the CAD system. A customer may provide a blueprint containing one or more drawings of the component and the critical geometric dimensions of the part. The blueprint may also indicate any special forming or marking to be included in the part, as well as the location of holes or other types of openings on the surface(s) of the sheet metal part. The design programmer will often use this blueprint and/or other information from the customer to develop a 2-D model on the CAD system. The 2-D model may include a flat view and one or more other perspective views of the sheet metal part, with bendline and/or dimensional information. A customer may also sometimes provide raw 2-D CAD data (e.g., saved in a computer-readable file) to the manufacturing facility, that requires editing or refinement during the design stage.
The design and modeling of sheet metal parts with such conventional CAD systems suffers from several drawbacks and disadvantages. For example, most 2-D CAD systems have limited modeling and editing capabilities. Further, although three-dimensional (3-D) modeling has been recently provided in commercially available CAD systems, such systems cannot communicate and transfer sheet metal part data with other CAD or computer-based modeling systems. That is, sheet metal data may only be transferred between computer-based modeling and design systems by uploading or downloading files containing the sheet metal part data. The use of such data files causes several disadvantages, including the requirement that compatible, data file formats be used by the systems. Further, prior systems do not permit the design programmer to easily convert an existing 2-D CAD model of a part into a 3-D representation of the part.
An additional drawback with prior systems exists due to the limited information that is stored with the sheet metal part data. That is, while the part model data normally includes information concerning the overall part geometry, manufacturing information and production constraints are not included with the part model data. In co-pending, commonly assigned U.S. patent application Ser. No. 08/690,671, an object oriented data model is disclosed which includes part geometry and topology information, as well as manufacturing data for the sheet metal part. According to the disclosed object oriented data model, a bend model for the sheet metal part is defined as a completely self-contained class library. All of the required data manipulation and functions for the sheet metal part (e.g., folding, unfolding, etc.) are captured as member functions of the class library. Further, all of the geometrical and topological data are defined in objects that are grouped within the bend model. The geometrical data includes both 2-D and 3-D representations of the part.
The use of an object oriented bend model, such as that disclosed in U.S. patent application Ser. No. 08/690,671, provides several advantages. For example, an object oriented bend model provides a more comprehensive and realistic model of the sheet metal part, that includes both geometrical and topological information, as well as manufacturing information. Further, the use of an object oriented bend model provides greater flexibility and allows a design programmer to more easily modify or edit various features and attributes of the part, such as the faces, bendlines and bending properties of the part.
Currently, there exists a need to provide an interface between conventional CAD systems, such as 2-D CAD systems, and modeling systems employing an object oriented bend model, such as that disclosed in U.S. patent application Ser. No. 08/690,671. Such an interface is required that permits part data to be transferred between these systems and that provides greater flexibility in the editing and modeling of the part. With such an interface, it would be possible to integrate object oriented bend model systems with existing 2-D CAD systems and other conventional CAD systems.
Many advantages would exist by integrating such systems. For example, such an integration would permit new, object oriented bend model systems to be utilized with existing CAD systems. This type of an interface would also permit design programmers to take advantage of pre-existing editing features provided in prior CAD systems, while still maintaining the benefits of an object oriented data model system. Since many design programmers are fully accustomed or skilled with using conventional CAD systems, such an integration would enhance the efficiency of the designing and modeling stages for manufacturing the part, and would permit businesses and facilities to maintain use of existing or legacy CAD systems, while having full utilization of newer modeling systems, such as object oriented bend model systems.
In view of the foregoing, the present invention, through one or more of its various aspects, embodiments and/or specific features or sub-components thereof, is provided to bring about one or more objects and advantages, such as those specifically noted below.
A general object of the present invention is to provide an apparatus and method for transferring and editing part data, such as sheet metal part data. Another object of the invention is to improve the efficiency of part modeling and design.
Still a further object of the present invention is to provide an interface that facilitates the transfer of part-related data between computer-based application environments, such as a 2-D CAD system and an object oriented bend model system.
Another object of the invention is to provide an apparatus and method for transferring data related to a sheet metal part, whereby the data may be transferred in real time in order to avoid the need to upload or download the part data from a data file.
Yet another object of the present invention is to provide an apparatus and method for transferring sheet metal part data, wherein the part data may be transferred in various modes, including a faces mode in which the faces of the part are collectively transferred by the interface. In addition, the part data may be transferred in a flat mode whereby the part data is sent as an entire flat part with manufacturing related data.
Another object of the invention is to provide enhanced editing features which permit various features (e.g., a face or bendline) and parameters (e.g., bending parameters) of the part to be edited or modified and transferred in real time.
In accordance with an aspect of the invention, an interface for transferring part data between two application environments is provided, wherein one of the application environments includes a computer-aided design (CAD) program and the other of the application environments includes an object oriented bend model program. The interface may include: an inter-process communication system that establishes an inter-process communication path between the CAD program and the bend model program; and a library of application program interface (API) functions that may be called by the CAD program and the bend model program to transfer and exchange part data through the inter-process communication path. The inter-process communication path of the interface may be established in accordance with a predetermined message protocol, such as dynamic data exchange (DDE).
Preferably, the part data comprises data defining a sheet metal part including a plurality of faces, and the library of API functions includes a Send_Faces function for transferring the data defining the sheet metal part as a collection of attached faces. In such a case, the data that is transferred with the Send_Faces function may be provided in a buffer that comprises a part name, a set of face data, and bending parameter data. In addition, the set of face data may include loop data for each face of the sheet metal part, wherein the loop data includes data defining a bounding loop of each face of the part.
The library of API functions may also include an Add_Face function for transferring face data defining a face that is to be added to the data defining the sheet metal part. The set of input data that is provided to the Add_Face function may include a part name, a face name, and the face data. In addition, the face data may include loop data defining a bounding loop of the face to be added to the sheet metal part.
In accordance with the invention, the library of API functions may further comprise a Delete_Face function for transferring face data defining a face that is to be deleted from the data defining the sheet metal part. In such a case, the set of input data that is provided to the Delete_Face function may include a part name and a face name of the face to be deleted from the sheet metal part. If a Delete_Bendline function is provided as an API function for transferring data defining a bendline that is to be deleted from the sheet metal part, then the set of input data that is provided to the Delete_Bendline function may include a part name, a name of a first face of the sheet metal part that is adjacent to the bendline to be deleted, and a name of a second face of the sheet metal part that is adjacent to the bendline to be deleted.
The library of API functions may also include an Attach_Faces function for transferring data defining faces of the sheet metal part that are to be attached. The data transferred by the Attach_Faces function may include a buffer comprising a part name, a set of edge names of a first face of the sheet metal part that is to be attached, a set of edges names of a second face of the sheet metal part that is to be attached, and attachment parameters for attaching the edges of the first and second faces. In addition, a Set_Bending_Parameters function may be provided for transferring data defining bending parameters that are to be set for a bendline of the sheet metal part that is defined between a first adjacent face and a second adjacent face. For this function, a set of input data may be provided that includes a part name, a name of the first adjacent face, a name of the second adjacent face, and the bending parameters that are to be set for the bendline. Further, the bending parameters that are transferred with the Set_Bending_Parameters function may include a bending angle, a bend type, a bend deduction amount, and/or an inside radius of the bend.
Still further, the library of API functions for the interface may include a Shift_Face function for transferring data defining a second face of the sheet metal part that is to be shifted with respect to a first face of the sheet metal part. The data that is transferred by the Shift_Face function may include a buffer comprising a part name, a name of the first face, a name of the second face, and a shift amount indicating the amount by which the second face is to be shifted with respect to the first face. In addition, the library of API functions may include a Send_Flat function for transferring the data defining the sheet metal part as a flat version of the part. With this function, the data that is transferred may be provided in a buffer that comprises a part name, a set of edges defining the flat version of the part, and a set of default bending parameters for the part. A Send_Folded function may also be included to permit the transferring of the data defining the sheet metal part as a folded version of the part. The data that is transferred with the Send_Folded function may be provided in a buffer that comprises a part name, and a set of edges defining the folded version of the part.
In accordance with another aspect of the invention, a method is provided for transferring part data between two application environments, including a computer-aided design (CAD) program and a bend model program. The method comprises: establishing an inter-process communication path between the CAD program and the bend model program; defining a library of application program interface (API) functions that may be called by the CAD program and the bend model program to transfer part data through the inter-process communication path; calling one of the API functions of the library; and transferring part data between the CAD program and the bend model program based on the API function that was called from the library.
In the disclosed method, the part data may comprise data defining a sheet metal part including a plurality of faces. In addition, the method may further comprise calling a Send_Faces function from the library and transferring the data defining the sheet metal part as a collection of attached faces in response to the Send_Faces function being called from the library. The method may also include providing, when the Send_Faces function is called from the library, a buffer that comprises a part name, a set of face data, and bending parameter data in order to transfer the data defining the sheet metal part. The set of face data may comprise loop data for each face of the sheet metal part, wherein the loop data includes data defining a bounding loop of each face.
The method may also comprise calling an Attach_Faces function from the library and transferring, in response to the Attach_Faces function being called from the library, data defining faces of the sheet metal part that are to be attached. In such a case, the method may further comprise providing, when the Attach_Faces function is called from the library, a buffer comprising a part name, a set of edge names of a first face of the sheet metal part that is to be attached, a set of edges names of a second face of the sheet metal part that is to be attached, and attachment parameters for attaching the edges of the first and second faces.
The library of functions that are called with the disclosed method may also include a Shift_Face function. In such a case, the method may further include transferring, when the Shift_Face function is called from the library, data defining a second face of the sheet metal part that is to be shifted with respect to a first face of the sheet metal part. In addition, the method may include providing, when the Shift_Face function is called from the library, a buffer comprising a part name, a name of the first face, a name of the second face, and a shift amount indicating the amount by which the second face is to be shifted with respect to the first face.
Further, the method may comprise calling a Send_Flat function and transferring, when the Send_Flat function is called from the library, the data defining the sheet metal part as a flat version of the part. The method may also include providing, when the Send_Flat function is called from said library, a buffer that comprises a part name, a set of edges defining the flat version of the part, and a set of default bending parameters for the part.
In accordance with yet another aspect of the invention, a method is provided for transferring sheet metal part data between two application environments, including a computer-aided design (CAD) program and an object-oriented bend model program. The method comprises: establishing an inter-process communication path between the CAD program and the bend model program; defining a library of application program interface (API) functions to transfer part data through the inter-process communication path; determining a set of input data for one of the API functions of said library; calling one of the API functions and providing, as input to the called API function, the set of input data; and transferring, with the inter-process communication path, the set of input data between the CAD program and the bend model program in accordance with the called API functions that was called from the library.
According to the disclosed method, the act of determining a set of input data may comprise: identifying a part name of the sheet metal part; identifying a set of edge of a first face of the sheet metal part that is to be attached; identifying a set of edges of a second face of the sheet metal part that is to be attached to the set of edges of the first face; defining attachment parameters for attaching the edges of the first and second faces; and providing, as the set of input data, the part name, a set of edge names of the edges of the first face of the sheet metal part, a set of edges names of the edges of the second face of the sheet metal part, and the attachment parameters for attaching the edges of the first and second faces. The method may also further comprise calling an Attach_Faces function from the library of API functions to transfer the set of input data and attach the first and second faces of the sheet metal part.
Moreover, in the disclosed method, the act of determining a set of input data may comprise: identifying a part name of the sheet metal part; identifying a first face of the sheet metal part; identifying a second face of the sheet metal part that is to be shifted with respect to the first face; defining a shift amount for shifting the second face with respect to the first face; and providing, as the set of input data, the part name, a name of the first face of the sheet metal part, a name of the second face of the sheet metal part, and the shift amount. In addition, the method may also include calling a Shift_Face function from the library of API functions to transfer the set of input data and shift the second face with respect to the firs face of the sheet metal part.
Further features and/or variations may be provided in addition to those noted above. For example, the invention may be directed to various combinations and subcombinations of the above-described features and/or combinations and subcombinations of several further features that are discussed below in the detailed description.
The above-listed and other objects, features and advantages of the present invention will be more fully set forth hereinafter.